home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / shell / mscope / src / mscope.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-15  |  3.2 KB  |  158 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <egb.h>
  9. #include <guidbg.h>
  10.  
  11. char    *guiEgbPtr ;            /*    EGB のワークアドレス    */
  12.  
  13. #include <wgb.h>
  14. #include <mos.h>
  15. #include <kh.h>
  16. //#define DEBUG
  17.  
  18. extern int quitIconID;
  19. extern int windowID;
  20. extern int quitIconID;
  21. extern int upIconID;
  22. extern int downIconID;
  23.  
  24. extern void setIcon(void);
  25. extern void setSize(void);
  26. extern void setUser(void);
  27.  
  28. extern int quitFuncRet;
  29. extern unsigned int zoom;
  30. extern HYPER whyp;
  31.  
  32. int userFunc(apliId, messId, info, data)
  33. int    apliId;
  34. int    messId;
  35. int    info;
  36. int    data;
  37. {
  38.     register int    ret;
  39.  
  40.     ret = ILLEGAL_FUNCTION;
  41.  
  42.     switch(messId)
  43.     {
  44.         case    GM_QUIT :
  45.             MMI_SendMessage(quitIconID,MM_EXEC,2,0,0);
  46.             ret = quitFuncRet ;
  47.             break;
  48.     }
  49.  
  50.     return(ret);
  51. }
  52.  
  53. void main()
  54. {
  55.     static MMICTRL mmi ={
  56.                 SCREEN16|SCREENIGNORE,        // ページ0側解像度
  57.                 SCREENUNUSED,                // ページ1側解像度
  58.                 0,                             // 書き込みページ
  59.                 SCREENAVAILABLE,             // 表示ページ
  60.                 0,                             // 表示プライオリティ
  61.                 SCREENAVAILABLE,            // 色数
  62.                 SCREENEXPAND,                 // VRAMの横の長さ
  63.                 0,                             // メモリ領域の大きさ
  64.                 NULL,                         // メモリ領域のアドレス
  65.                 0,                             // ユーザ領域の大きさ
  66.                 NULL,                         // ユーザ領域のアドレス
  67.                 0, 0,                         // 画面枠    lupx,lupy
  68.                 0, 0,                        //            rdwx,rdwy
  69.                 -16384, -16384,                // 移動枠    lupx,lupy
  70.                 16383, 16383,                //            rdwx,rdwy
  71.                 15,                         // 白色
  72.                 8,                          // 黒色
  73.                 7,                          // 灰色
  74.                 6                             // 反転色
  75.     };
  76.  
  77.     extern int APL_init() ;
  78.  
  79.     /*    初期化処理    */
  80.     if (MMI_Open( &mmi ) == NOERR)
  81.     {
  82.         /*    初期化に成功すればメインループに入る.    */
  83.         if (APL_init() == NOERR)
  84.             MMI_ExecSystem() ;
  85.     }
  86.  
  87.     /*    終了処理    */
  88.     MMI_Close() ;
  89.  
  90. }
  91.  
  92. int APL_init()
  93. {
  94.     extern MMIINIT    initDataGUI ;
  95.  
  96.     register int    ret ;
  97.  
  98.     /*    EGB ワークアドレスの取得.    */
  99.     guiEgbPtr = MMI_GetEgbPtr() ;
  100.  
  101.     /*    ユーザアイコン設定        */
  102.     extern unsigned char *iconTbl[];
  103.     extern int iconMaxId;
  104.     MMI_SetIconTable(iconTbl, iconMaxId);
  105.  
  106.     /*    ハイパ型部品の初期化            */
  107.     if ((ret = MMI_initHyper()) < 0)
  108.         return ret ;
  109.     /*    ダイアログ型部品の初期化        */
  110.     if ((ret = MMI_initDialogL40()) < 0)
  111.         return ret ;
  112.     /*    ウインドウ型部品の初期化        */
  113.     if ((ret = MMI_initWindowL40()) < 0)
  114.         return ret ;
  115.     /*    ボタン型部品の初期化            */
  116.     if ((ret = MMI_initButtonL40()) < 0)
  117.         return ret ;
  118.     /*    アイコンボタン型部品の初期化    */
  119.     if ((ret = MMI_initIconL40()) < 0)
  120.         return ret ;
  121.  
  122.     /*    背景データの初期化                        */
  123.  
  124.     /*    データの登録        */
  125.     if ((ret = MMI_Init(&initDataGUI)) < 0)
  126.         return ret ;
  127.  
  128.     //デフォルトの位置に移動
  129.     FRAME fr;
  130.     fr.lupx=0;
  131.     fr.lupy=0;
  132.     fr.rdwx=100;
  133.     fr.rdwy=50;
  134.     zoom=4;
  135.     MMI_SendMessage(windowID,MM_MOVE,1,&fr);
  136.     MMI_SendMessage(windowID,MM_GETHYPER,1,&whyp);
  137.     setIcon();
  138.  
  139.     /*    Tmenuにパレットを合わせる    */
  140.     KH_initGuiColor();
  141.  
  142.     /*    背景を表示する                            */
  143.     MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
  144.  
  145.     setUser();
  146.     setSize();
  147.  
  148.     MMI_SendMessage(MMI_GetBaseObj(), MM_SETEXEC, 1, userFunc);
  149.     MMI_CallMessage(MMI_GetApliId(), GM_TITLE, (int)"Mscope                          By 機拡", 0);
  150.  
  151.     extern void    userIdleTask();
  152.     MMI_SetIdleTaskFunc( userIdleTask );
  153.     userIdleTask();
  154.  
  155.     return NOERR ;
  156. }
  157.  
  158.